//
//  HSYFMDBOperationInfo.h
//  高仿暴走斗图
//
//  Created by key on 16/10/11.
//  Copyright © 2016年 huangsongyao. All rights reserved.
//

#import "HSYBaseAbstractInfo.h"

#define FIELE_TYPE      @"TEXT"

@interface HSYFMDBOperationFieldInfo : HSYBaseAbstractInfo

@property (nonatomic, strong) NSString *fieldName;                                  //字段名
@property (nonatomic, strong) NSString *fieldType;                                  //字段类型

- (instancetype)initWithFieldName:(NSString *)name fieldType:(NSString *)type;

@end

@interface HSYFMDBOperationInfo : HSYBaseAbstractInfo

@property (nonatomic, strong) NSString *name;                                       //数据库表面
@property (nonatomic, strong) NSMutableArray <HSYFMDBOperationFieldInfo *>*fields;  //数据库要添加到表中的字段名称和字段名称对应的类型 的抽象类集合
@property (nonatomic, strong) NSMutableArray <NSString *>*statements;               //数据库要插入的数据

- (NSString *)toDataBaseTableField;                                                 //通过对fields集合进行处理，获取到一个创建表的字符串
- (NSString *)toDataBaseTableInsertStatements;                                      //通过对fields集合进行处理，获取到一个用于插入数据的字符串
- (NSString *)toDataBaseTableInsertFields;

@end

@interface HSYFMDBOperationInfo (Show)

/**
 *  快捷创建，用于创建数据库表
 *
 *  @param name   表名称
 *  @param fields 表字段的抽象类集合
 *
 *  @return HSYFMDBOperationInfo
 */
+ (HSYFMDBOperationInfo *)createDataBaseTableForName:(NSString *)name fields:(NSMutableArray <HSYFMDBOperationFieldInfo *>*)fields;

/**
 *  快捷创建，用于插入数据
 *
 *  @param name       表名称
 *  @param fieldsqq   表字段的抽象类集合
 *  @param statements 要插入到name表的数据集合，例如，表name有：a、b、c三个字段，入参格式为：@[@"字段a的数据", @"字段b的数据", @"字段c的数据"];
 *
 *  @return HSYFMDBOperationInfo
 */
+ (HSYFMDBOperationInfo *)createDataBaseTableForName:(NSString *)name fields:(NSMutableArray <HSYFMDBOperationFieldInfo *>*)fields insertDatas:(NSMutableArray <NSString *>*)statements;

@end